package top.whysu.edevice.service.manage;

import org.springframework.transaction.annotation.Transactional;
import top.whysu.edevice.dto.device.DeviceAddModifyDTO;
import top.whysu.edevice.dto.device.DeviceQueryDTO;
import top.whysu.edevice.dto.page.PagenationDataDTO;
import top.whysu.edevice.po.manage.ManageDevicePO;

import java.math.BigDecimal;
import java.util.List;

/**
 * 设备管理
 */
public interface ManageDeviceService {
    /**
     * 添加/编辑设备
     */
    @Transactional
    BigDecimal wholeAddModifyDevice(DeviceAddModifyDTO addModifyDTO);

    /**
     * 查看设备列表
     *
     * @param deviceQueryDTO 查询参数
     * @return 分页对象
     */
    PagenationDataDTO<ManageDevicePO> selectPage(DeviceQueryDTO deviceQueryDTO);

    /**
     * 删除设备
     *
     * @param deviceId 设备表主键id
     */
    @Transactional
    void delete(BigDecimal deviceId);

    /**
     * 查询凭证组下的所有设备集合
     *
     * @param voucherId 凭证组id
     * @return 设备集合
     */
    List<ManageDevicePO> getDeviceListByVoucherId(BigDecimal voucherId);
}